﻿
Option Strict On

Imports osi.root.connector
Imports osi.root.formation
Imports osi.root.procedure
Imports osi.root.utils

Public Class text_dev_T_idevice_pool(Of DT, T As idevice_pool(Of text), impl_T As dev_T(Of DT))
    Inherits idevice_pool_adapter(Of text, impl_T, T)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function to_dev_to_from_dev(ByVal i As impl_T, ByRef o As text) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public Class text_dev_T_idevice_pool(Of DT, impl_T As dev_T(Of DT))
    Inherits text_dev_T_idevice_pool(Of DT, idevice_pool(Of text), impl_T)

    Public Sub New(ByVal f As idevice_pool(Of text))
        MyBase.New(f)
    End Sub
End Class

Public Class text_dev_T_idevice_pool(Of DT)
    Inherits text_dev_T_idevice_pool(Of DT, dev_T(Of DT))

    Public Sub New(ByVal f As idevice_pool(Of text))
        MyBase.New(f)
    End Sub
End Class

Public MustInherit Class text_dev_T_isync_device_pool(Of DT,
                                                          T As isync_device_pool(Of text),
                                                          impl_T As dev_T(Of DT))
    Inherits isync_device_pool_adapter(Of text, impl_T, T)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function to_dev_to_from_dev(ByVal i As impl_T, ByRef o As text) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public MustInherit Class text_dev_T_isync_device_pool(Of DT, impl_T As dev_T(Of DT))
    Inherits text_dev_T_isync_device_pool(Of DT, isync_device_pool(Of text), impl_T)

    Public Sub New(ByVal f As isync_device_pool(Of text))
        MyBase.New(f)
    End Sub
End Class

Public MustInherit Class text_dev_T_isync_device_pool(Of DT)
    Inherits text_dev_T_isync_device_pool(Of DT, dev_T(Of DT))

    Public Sub New(ByVal f As isync_device_pool(Of text))
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text, ByRef o As dev_T(Of DT)) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public MustInherit Class text_dev_T_iasync_device_pool(Of DT,
                                                           T As iasync_device_pool(Of text),
                                                           impl_T As dev_T(Of DT))
    Inherits iasync_device_pool_adapter(Of text, impl_T, T)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function to_dev_to_from_dev(ByVal i As impl_T, ByRef o As text) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public MustInherit Class text_dev_T_iasync_device_pool(Of DT, impl_T As dev_T(Of DT))
    Inherits text_dev_T_iasync_device_pool(Of DT, iasync_device_pool(Of text), impl_T)

    Public Sub New(ByVal f As iasync_device_pool(Of text))
        MyBase.New(f)
    End Sub
End Class

Public Class text_dev_T_iasync_device_pool(Of DT)
    Inherits text_dev_T_iasync_device_pool(Of DT, dev_T(Of DT))

    Public Sub New(ByVal f As iasync_device_pool(Of text))
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text,
                                                                   ByVal o As pointer(Of dev_T(Of DT))) As event_comb
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public MustInherit Class text_dev_T_new_device_event_isync_device_pool _
                             (Of DT,
                                 T As new_device_event_isync_device_pool(Of text),
                                 impl_T As dev_T(Of DT))
    Inherits new_device_event_isync_device_pool_adapter(Of text, impl_T, T)

    Public Sub New(ByVal f As T)
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function to_dev_to_from_dev(i As impl_T, ByRef o As text) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class

Public MustInherit Class text_dev_T_new_device_event_isync_device_pool(Of DT, impl_T As dev_T(Of DT))
    Inherits text_dev_T_new_device_event_isync_device_pool(Of DT, new_device_event_isync_device_pool(Of text), impl_T)

    Public Sub New(ByVal f As new_device_event_isync_device_pool(Of text))
        MyBase.New(f)
    End Sub
End Class

Public Class text_dev_T_new_device_event_isync_device_pool(Of DT)
    Inherits text_dev_T_new_device_event_isync_device_pool(Of DT, dev_T(Of DT))

    Public Sub New(ByVal f As new_device_event_isync_device_pool(Of text))
        MyBase.New(f)
    End Sub

    Protected NotOverridable Overrides Function from_dev_to_to_dev(ByVal i As text,
                                                                   ByRef o As dev_T(Of DT)) As Boolean
        Return text_dev_T_adapter(Of DT).convert(i, o)
    End Function
End Class
